package com.example.zjsr;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @ClassName: test
 * @Description TODO
 * @Author liuzhaobo
 * @Date 2022/9/29 0029 9:57
 * @Version 1.0
 **/
public class test04 {
    public static void main(String[] args) throws Exception {
        ListNode listNode1 = new ListNode(12345);
        ListNode listNode =removeNthFromEnd(listNode1, 2);
        System.out.println(listNode);


    }
    public static ListNode removeNthFromEnd(ListNode head, int n) {
        ListNode ans=new ListNode(0);//定义一个头节点
        ans.next=head;//头节点指向这个链表
        ListNode listnode = ans;//每次调用这个链表只需要定义一个节点等于这个头节点
        int length=0;
        while(listnode.next!=null){//统计链表长度
            length++;
            listnode=listnode.next;
        }
        ListNode temp =ans;
        for(int i = 1;i<length-n+1;i++){
            temp=temp.next;
        }
        temp.next=temp.next.next;//在倒数第n个位置前使链表的当前节点指向n的下一个位置
        return ans.next;//这样做最后返回这个头节点的next就是返回了这个新的链表
    }

    public static class ListNode {
        int val;
        ListNode next = null;
        public ListNode(int val) {
            this.val = val;
        }
    }



}




